SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Proc [dbo].[SP_TXMVTO_CNTB_I21]
/*---------------------------------------------------------------------*/          
/*----- Empresa           : OFISIS S.A.                            ----*/          
/*----- Cliente           : OFISIS S.A.                            ----*/          
/*----- Sistema           : Contabilidad                    ----*/          
/*----- Modulo            : Empresa                                ----*/          
/*----- Programa          : Cancelaci?n Documentos banco           ----*/          
/*----- Nombre            : SP_TXMVTO_CNTB_I21                     ----*/          
/*----- Script            : TXMVTO_CNTB                            ----*/          
/*----- Desarrollado por  : Ernesto Gom,z Torres                   ----*/          
/*----- Fecha             : 10/08/2000                             ----*/          
/*----- Base de Datos     : MS SQL Server                          ----*/          
/*----- Version BD        : 7.0                                    ----*/          
/*---------------------------------------------------------------------*/          
/*---------------------------------------------------------------------*/          
/*----- Modificado 1 por  : PERCY GARCIA                           ----*/          
/*----- Detalle Modifica  : OBTIENE EL NUMERO DE ASTO PARA QUE SE  ----*/        
/*----- EN LINEA Y DEVUELVE ESE VALOR, EN EL INSERT SE MANDA LA VARIABLE ----*/        
/*----- SE COLOCO EL UPDATE A TCFECH_PROC ANTES DEL INSERT TXMVTO_CNTB ----*/        
/*----- SE COMENTO ROLLBACK TRAN EN TTCNTA_BNCO Y SE AUMENTO EN INSERT Y UPDATE ----*/        
/*----- Fecha Modifica    : 15/04/2004                             ----*/          
/*---------------------------------------------------------------------*/         
/*---------------------------------------------------------------------*/    
/*----- Modificado 2 por : percy garcia                           -----*/    
/*----- Fecha Modifica   : 05/06/2004                             -----*/    
/*----- Detalle Modifica : usuario creacion y modif               -----*/    
/*---------------------------------------------------------------------*/    
/*---------------------------------------------------------------------*/          
/*----- Modificado 3 por  : PERCY GARCIA                           ----*/          
/*----- Detalle Modifica  : NUEVO CAMPO FE_PAGO----*/          
/*----- Fecha Modifica    : 11/09/2006                             ----*/          
/*---------------------------------------------------------------------*/          
/*---------------------------------------------------------------------*/          
/*----- Drop proc SP_TXMVTO_CNTB_I21                               ----*/          
/*----- Grant all on SP_TXMVTO_CNTB_I21 to PUBLIC                  ----*/          
/*----- SP_TXMVTO_CNTB_I21 '01', 1 ,'001', 2000, 2 , '001',          
        '0000000008'                                               ----*/          
/*---------------------------------------------------------------------*/          
(@ISCO_EMPR TD_VC_002,          
@ISCO_USUA          TD_VC_008,  
@IDFE_USUA          TD_DT_001,  
@INNU_CNTB_EMPR TD_IN_001_CONT,          
@ISCO_OPRC_CNTB TD_VC_003,          
@INNU_ANNO TD_IN_004_ANNO,          
@INNU_MESE TD_IN_002_MESE,          
@ISCO_UNID_CNTB TD_VC_003,          
@ISNU_ASTO TD_VC_010,          
@ISCO_CNTA_EMPR TD_VC_020_CNTA,           
@ISST_GENE TD_VC_003,          
@ISTI_DOCU TD_VC_003,          
@ISNU_DOCU      TD_VC_020)          
     --- with encryption
As          
        
Declare         
@VSST_GENE_ASTO TD_VC_003,         
@VNNU_ULTI_ASTO TD_IN_002         
          
Begin Transaction SP_TXMVTO_CNTB_I21        
          
/*Create Table #TWTXMVTO_CNTB  ( CO_EMPR varChar(02) ,  NU_CNTB_EMPR int  ,           
              CO_UNID_CNTB varchar(3)  ,  CO_OPRC_CNTB varchar(3)  ,            
 NU_ANNO int  ,  NU_MESE int  ,  NU_ASTO varchar(10) ,           
              NU_SECU int  ,  FE_ASTO_CNTB DateTime   ,             
              CO_CNTA_EMPR varchar(10)   ,  TI_AUXI_EMPR varchar(1) ,           
              CO_AUXI_EMPR varchar(20)  ,  TI_DOCU varchar(3) ,      
              NU_DOCU varchar(20)  ,  FE_DOCU DateTime  ,  FE_DOCU_VENC DateTime ,           
              TI_CAMB varchar(1)  ,  CO_MONE varchar(3)  ,  FA_CAMB Numeric(9,4)  ,            
              FA_CAMB_DIAR Numeric(9,4)  ,  TI_OPER varchar(1) ,           
        IM_MVTO_ORIG Numeric(16,4)  ,  IM_MVTO_CNTB  Numeric(16,4)   ,            
              DE_GLOS varchar(80)   ,  SI_MVTO_CNTB varchar(1)   ,            
              SI_MVTO_DOCU varchar(1))*/          
        
-- SE AUMENTO PARA QUE SEA EN LINEA        
 Select @VSST_GENE_ASTO = ST_GENE_ASTO              
 From TTCNTB_EMPR              
 Where CO_EMPR = @ISCO_EMPR         
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR              
        
  If @VSST_GENE_ASTO = 'GEN'              
   Begin  -- (1)           
       Select @VNNU_ULTI_ASTO = IsNull(NU_ULTI_ASTO,0)              
       From TCFECH_PROC              
       Where CO_EMPR = @ISCO_EMPR              
       And NU_CNTB_EMPR = @INNU_CNTB_EMPR              
       And CO_UNID_CNTB = @ISCO_UNID_CNTB              
       And CO_OPRC_CNTB = @ISCO_OPRC_CNTB              
       And NU_ANNO = @INNU_ANNO              
       And NU_MESE = @INNU_MESE               
          
       If @VNNU_ULTI_ASTO + 1 != Convert(int, @ISNU_ASTO)              
         Begin      -- (A)        
          Select @ISNU_ASTO = Convert( varchar(10), @VNNU_ULTI_ASTO + 1 )              
          Select @ISNU_ASTO = STUFF('0000000000', 11 - DataLength(@ISNU_ASTO), DataLength(@ISNU_ASTO), @ISNU_ASTO)              
         End      -- (A)        
   End -- (1)                      
-- FIN SE AUMENTO PARA QUE SEA EN LINEA        
        
 Update TCFECH_PROC           
 Set NU_ULTI_ASTO = Convert(Int, @ISNU_ASTO),          
 CO_USUA_MODI  = @ISCO_USUA,          
 FE_USUA_MODI  = @IDFE_USUA          
 Where CO_EMPR = @ISCO_EMPR          
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR          
 And CO_UNID_CNTB = @ISCO_UNID_CNTB          
 And CO_OPRC_CNTB = @ISCO_OPRC_CNTB          
 And NU_ANNO = @INNU_ANNO          
 And NU_MESE = @INNU_MESE          
        
 If @@ERROR != 0               
  Begin           
   Rollback Transaction  SP_TXMVTO_CNTB_I21        
   Return          
  End         
          
Insert Into TXMVTO_CNTB(CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB ,  NU_ANNO,           
                 NU_MESE, NU_ASTO, NU_SECU , FE_ASTO_CNTB , CO_CNTA_EMPR ,  TI_AUXI_EMPR ,           
                 CO_AUXI_EMPR , TI_DOCU , NU_DOCU, FE_DOCU , FE_DOCU_VENC , TI_CAMB, CO_MONE ,           
                 FA_CAMB , FA_CAMB_DIAR , TI_OPER , IM_MVTO_ORIG ,  IM_MVTO_CNTB , DE_GLOS ,            
                NO_GIRA , FE_PROG_CHEQ , SI_MVTO_CNTB ,  TI_DOCU_REFE, NU_DOCU_REFE, FE_DOCU_REFE, IM_MVTO_RETE,          
                FE_PAGO,CO_ORDE_SERV,CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA )          
Select          Ltrim(Rtrim(CO_EMPR)), NU_CNTB_EMPR, Ltrim(Rtrim(CO_UNID_CNTB)), Ltrim(Rtrim(CO_OPRC_CNTB)),  NU_ANNO,           
                NU_MESE, Ltrim(Rtrim(@ISNU_ASTO)), NU_SECU , FE_ASTO_CNTB , Ltrim(Rtrim(CO_CNTA_EMPR)) ,  NullIf(Rtrim(TI_AUXI_EMPR),'') ,           
                NullIf(Ltrim(Rtrim(CO_AUXI_EMPR)),'') , NullIf(Ltrim(Rtrim(TI_DOCU)),'') , NullIf(Ltrim(Rtrim(NU_DOCU)),''), FE_DOCU , FE_DOCU_VENC , TI_CAMB, CO_MONE ,           
                FA_CAMB , FA_CAMB_DIAR , TI_OPER , IsNull(IM_MVTO_ORIG, 0) ,  IsNull(IM_MVTO_CNTB, 0) , Ltrim(Rtrim(DE_GLOS)) ,            
                NO_GIRA , FE_PROG_CHEQ , SI_MVTO_CNTB ,   Ltrim(Rtrim(TI_DOCU_REFE)), Ltrim(Rtrim(NU_DOCU_REFE)), FE_DOCU_REFE, IsNull(IM_MVTO_RETE, 0),          
                FE_PAGO,NullIf(Ltrim(Rtrim(CO_ORDE_SERV)),''),@ISCO_USUA, @IDFE_USUA, @ISCO_USUA, @IDFE_USUA          
From    #TWMVTO_CA02          
         
 If @@ERROR != 0               
  Begin           
   Rollback Transaction  SP_TXMVTO_CNTB_I21        
   Return          
  End         
          
If (@ISTI_DOCU = 'CHE' or @ISTI_DOCU = 'CHQ' or @ISTI_DOCU = 'CH' or @ISTI_DOCU = 'IC' ) And (@ISST_GENE ='GEN')          
Begin          
 Update TTCNTA_BNCO          
 set NU_ULTI_CHEQ = convert (int, @ISNU_DOCU),          
        CO_USUA_MODI  = @ISCO_USUA ,          
        FE_USUA_MODI  = @IDFE_USUA        Where CO_EMPR = @ISCO_EMPR          
 and CO_CNTA_EMPR = @ISCO_CNTA_EMPR          
End          
          
/* If @@ERROR != 0               
  Begin           
   Rollback Transaction SP_TXMVTO_CNTB_I21         
   Return          
  End  */        
Commit Tran SP_TXMVTO_CNTB_I21         
Select @ISNU_ASTO          
--Select @ISNU_ASTO, @ISTI_DOCU, @ISNU_DOCU          
Return          
/*----------------------------------------- Fin ----------------------------------------*/


GO
